// 判断数据库是否存在【热门游戏】字段
// 添加字段用的方法
// 
// 

const { pool } = require('../PutArticle/model/MySQL');
/**
 * 执行 SQL 查询
 * @param {string} tableName SQL语句 表名
 * @param {Array} columnName SQL参数 字段
 * 
 */
async function checkColumnExists(tableName, columnName) {
  try {
    const existsQuery = `
          SELECT EXISTS(
              SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS
              WHERE table_name = ? AND column_name = ? AND table_schema = DATABASE()
          ) AS 'exists';
      `;
    const [existsResult] = await pool.query(existsQuery, [tableName, columnName]);
    const columnExists = existsResult[0].exists;
    return columnExists === 1;
  } catch (error) {
    console.error('Database error:', error);
    throw error; // 适当的错误处理
  }
}
/**
 * 执行 SQL 查询
 * @param {string} tableName SQL语句 表名
 * @param {Array} columnName SQL参数 字段
 * @param {sql} columnName SQL字段参数
 * 
 */
async function addColumn(tableName, columnName, dataType) {
  const alterTableQuery = `ALTER TABLE ${tableName} ADD COLUMN ${columnName} ${dataType};`;

  try {
    await pool.query(alterTableQuery);
    console.log(`Column ${columnName} added successfully to table ${tableName}.`);
  } catch (error) {
    console.error('Failed to add column:', error);
  }
}

// 使用该函数
function is_add_Date(tableName, columnName, dataType) {
  if (!tableName || !columnName || !dataType) {
    console.error('字段不对.');
    return;
  }
  checkColumnExists(tableName, columnName).then(columnExists => {
    if (columnExists) {
      console.log('存在字段.');
    } else {
      console.log('不存在字段，添加字段');
      // 这里可以添加代码来执行ALTER TABLE添加列的操作  不存在字段则添加
      try {
        // 执行添加列的操作
        addColumn(tableName, columnName, dataType);
  
      } catch (error) {
        console.error('Error setting up the database:', error);
      }
    }
  }).catch(error => {
    console.error('Error checking column:', error);
  });
}

// 调用方法
is_add_Date('gp_game_content', 'is_hot', 'TINYINT(1) DEFAULT 0')

module.exports = {
  is_add_Date
};
